%e 5000
%p 12000
%S Wortanfang ImWort
%{
%}
Vokal_kurz  \{|\{~|@|a|e|E|I|O|Q|U|V
Vokal_lang \{~:|3:|A~:|A:|a_I|a_U|E_@|e_I|i:|I_@|O~:|O:|O_I|u:|@_U|U_@|n,|m,|N,|l,
Konsonant b|d|D|d_Z|f|g|h|j|k|l|m|n|N|p|r|r\*|s|S|t|T|t_S|v|w|x|z|Z
Wortanfangsonset""|{Konsonant}|bj|bl|br|dj|dr|Dr|dw|fj|fl|fr|gj|gl|gr|gw|kj|kl|kr|kw|mj|nj|pf|pj|pl|pr|ps|pS|sk|skj|skl|skr|skw|sl|sm|Sm|sn|Sn|sp|Sp|spj|spl|spr|sr|Sr|st|St|stj|str|sw|tj|tr|ts|tw|vj|vr|zl|sw|Zw
Satzzeichen \.|\!|\?|\,|\;|-|\(|\)|[ ]:
WhiteSpace [ \t\n\r]
Vokal {Vokal_lang}|{Vokal_kurz}
Trennzeichen {Satzzeichen}|{WhiteSpace}
beliebig {Konsonant}|{Vokal}|{Trennzeichen}
Silbenanfang {Wortanfangsonset}/{Vokal}
Phonem {Vokal}|{Konsonant}
%%

					int Klammer = 0;
					int Silbe = 0; 

\<[^>]*\>				{
					 if (Klammer == 0)	
					   {ECHO;}
					 else
					   {printf("]");
					    ECHO;
					    Klammer = 0;
					   }
					 BEGIN Wortanfang;
					}			/* <..> */


\[[^\]\[]*(\[[^\]\[]*\][^\]\[]*)*\]	{ECHO;
					}			/* [...[..]...] */

\[{Konsonant}*\]{Konsonant}*{Vokal}	ECHO;

<Wortanfang>{Konsonant}*{Vokal} 	{
					   printf("[");
					   Klammer = 1;
					   ECHO;
					   BEGIN 0;
					}
{Wortanfangsonset}{Vokal}		{if (Klammer == 0)
					   {printf("[");
					    Klammer = 1;
					   }
					 else
					   {printf("][");
					   }
					ECHO;
					}
{Trennzeichen}+ 			{
					 if (Klammer == 0)	
					   {ECHO;}
					 else
					   {printf("]");
					    ECHO;
					    Klammer = 0;
					   }
					 BEGIN Wortanfang;
					}
%%
main(argc, argv)
int argc;
char **argv;
{
 int i;

  ++argv; --argc; /* skip over program name */

  if(argc>0){
    for(i=0; i<argc; i++){
      yyin = fopen(argv[i],"r");
      if (yyin==NULL)
        fprintf(stderr,"could not open %s --- skipped.\n",argv[i]);
      else {
	BEGIN Wortanfang;
        yylex();
      }
    }
  } else {
    yyin=stdin;
    BEGIN Wortanfang;
    yylex();
  }     
}

 


